#include "led.h"
#include "buzzer.h"
/**
 * @brief 按键LED灯初始化
 * @param  : 无
 * @param  :
 * @retval 
 */
 uint8_t LED_flag = 1;
void LED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
	
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	SI12TCH_LED_OFF
}

/**
 * @brief 状态led灯初始化
 * @param  : 无
 * @param  :
 * @retval 
 */
void RGBLED_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC|RCC_AHBPeriph_GPIOF,ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
	GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
	GPIO_Init(GPIOC, &GPIO_InitStructure);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_Init(GPIOF, &GPIO_InitStructure);
	LED_ROFF
	LED_BOFF
	LED_GOFF
}

/**
 * @brief 设置状态灯的颜色，3~7位保留，2控制R 1控制G 0控制B
 * @param  : 
 * @param  :
 * @retval 
 */
void RGBLED_SetValue(uint8_t value)
{
	value &=0x07;
	switch(value)
	{
		case OFF:
			LED_ROFF
			LED_BOFF
			LED_GOFF
		break;
		
		case BLUE:
			LED_ROFF
			LED_BON
			LED_GOFF
		break;
		
		case GREEN:
			LED_ROFF
			LED_BOFF
			LED_GON
		break;
		
		case RED:
			LED_RON
			LED_BOFF
			LED_GOFF
		break;
		
	}
}

void LED_COM(void)
{
	if(LED_flag == 0)
	{
		TIM_SetCounter(TIM14,0);
	}
	else
	{
		TIM_SetCounter(TIM14,0);
		TIM_Cmd(TIM14,ENABLE);
		SI12TCH_LED_ON
		LED_flag = 0;
	}
}

void ERROR_STATUS(void)
{
	uint8_t i;
	for(i=0;i<3;i++)
	{
		BUZZER_ON
		delay_ms(50);
		BUZZER_OFF
		delay_ms(70);
	}
}

void SUCCESS_STATUS(void)
{
	BUZZER_ON
	RGBLED_SetValue(2);
	delay_ms(360);
	BUZZER_OFF
	RGBLED_SetValue(0);
}
